SEARCH KEYWORD -- compiler argument
How the Internet Is Ruining Everything
The ongoing argument about whether the Internet is a boon or a bust to civilization usually centers on the Web’s abundance. With so much data and so many voices, we each have knowledge formerly hard-won by decades of specialization. With some new fact or temptation perpetually beckoning, we may be the superficial avatars of an A.D.D. culture.David Weinberger, one of the earliest and most perceptive analysts of the Internet, thinks we are looking at the wrong thing. It is not the co...
Internet,Everything,Market,Shape world 2011-12-06 09:08:27
One reason why mcrypt responds slowly
This morning one colleague came over and talked about one script which used mcrypt responded very slowly, the server configurations are fine. But the reason for the slowness is unknown. Here is one script which reproduces the issue: <?php $dmcryptText = "dummy"; $key = "foobar"; $size = mcrypt_get_iv_size(MCRYPT_BLOWFISH,MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($size); //Take care $m = mcrypt_ecb(MCRYPT_BLOWFISH, $key, $dmcryptText, MCRYPT_DECRYPT, $iv); var_dump($m); When 20 requests of&...
How big is sizeof structure?
First let's see the codes of a structure: struct node{ int a; int b; }; Question : What's sizeof(node)? The answer is very simple, on a 32 bit machine, an int will take 4 bytes and two ints will take 8 bytes. So sizeof(node) is 8. The answer for the above codes is 8, then how about the following structure: struct node{ char a; int b; }; Question : Then what's sizeof(node) now? int takes 4 bytes, char takes 1 bytes, is the answer 5? Now the answer may not be 5, on some mac...
Data structure alignment, pack 2012-10-29 12:13:37
What's Wrong with the For Loop
Closures in Java are a hot topic of late. A few really smart people are drafting a proposal to add closures to a future version of the language. However, the proposed syntax and the linguistic addition are getting a lot of push back from many Java programmers. Today, Elliotte Rusty Harold posted his doubts about the merits of closures in Java. Specifically, he asks "Why Hate the for Loop?": I don’t know what it is some people have against for loops that they’re so eager to...
For loop,Basic,Problem,Efficiency,Java 2012-02-24 05:06:15
PHP Multithreading – Faking It
PHP doesn’t really support multi-threading per se but there are ways to do “fake†multithreading. Here’s one I saw in the PHPClasses.org newsletter – Multi-thread Simulation. Note that this class is intedend for use on a webserver, as opposed to running PHP scripts from a command line (or similar). Check the end of this post for some alternatives you can try if you’re using PHP as a stand-alone scripting language. Now, I’m going to be lazy and just ...
PHP,Multithreading,Possible,CURL,Fake,Si 2011-09-04 23:07:22
HTTP is not a transport protocol, HTTP is not RPC
Recently there was a question on the forums asking why we encourage usage of HttpRequestMessage<T> / HttpResponseMessage<T> in the signature of a web api implementation. The point made in the post is that if you have an ICalculator contract which your API implements, then it’s violating SOC / inappropriate to have those messages as params and in the contract. The argument is valid when looking at HTTP from the standpoint of an RPC mechanism, which is actually a quite co...
HTTP,Transport protocol,RPC 2012-01-19 10:14:26
Smuggling data in pointers
While reading up on The ABA Problem I came across a fantastic hack. The ABA problem, in a nutshell, results from the inability to atomically access both a pointer and a "marked" bit at the same time (read the wikipedia page). One fun, but very hackish solution is to "smuggle" data in a pointer. Example:#include "stdio.h"void * smuggle(void * ptr, int value){ return (void *)( (long long)ptr | (value & 3) );}int recoverData(void * ptr){ return (long long)ptr &...
Integer overflow
You may be familiar with integer overflow, but what you may not be familiar with is how gcc handles signed integer overflow. First let's look at the standard, for unsigned integer, the standard says : A computation involving unsigned operands can never overflow, because a result that cannot be represented by the resulting unsigned integer type is reduced modulo the number that is one greater than the largest value that can be represented by the resulting type. In other words, unsigned integer ov...
Integer overflow,gcc,Linux 2012-10-20 13:33:10
System programming is still there
System programming is the practice of writing system software. System software lives at a low level, interfacing directly with the kernel and core system libraries. Your shell and your text editor, your compiler and your debugger, your core utilities and system daemons are all system software. But so are the network server, the web server, and the database. These components are entirely system software, primarily if not exclusively interfacing with the kernel and the C library. But nowadays more...
System programming 2014-02-27 05:46:48
Web programs written in C++ are no big deal
I had an interesting conversation with a friend the other day. She wanted to try putting together a weekend "hackathon" just to see what we could build. It would be one of those fun things where we just start tinkering and see what comes out of it. Somehow, this conversation got to the topic of libraries, programming languages, and frameworks. Then it got a little weird. I guess the current "shiny" thing is still more-or-less Ruby, and particularly when used with Rails. Oh, I suppo...
C++,Web design,Library,Web app 2012-01-11 11:57:26
RECENT
- Tips for Socializing With Friends During College
- Proximity Cards Do More Than Just Open Doors
- How to choose quality painted auto parts
- Oval engagement rings from MoonOcean: Elegance of form and individual approach
- Hologres vs AWS Redshift
- GoLand connect to Hologres
- A journey to investigate a goroutine leakage case
- Understanding Slice Behavior in Go
- Breaking Barriers: How 3D Printing is Democratizing Product Development
- The Power of Efficiency: 10 Practical Energy-Saving Tips for Tech Startups
- more>>